x86: fix preemptable page type handling
authorKeir Fraser <keir.fraser@citrix.com>
Thu, 30 Oct 2008 14:53:24 +0000 (14:53 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Thu, 30 Oct 2008 14:53:24 +0000 (14:53 +0000)
commit85061a016b940fc666e183486d8a91e144509053
tree728632cdd8bbd9eb74981dfa067d3e6125ff1977
parent58a2e2fb0510b4902fc2cefe5ac5caadffb945f7
x86: fix preemptable page type handling

- retain a page reference when PGT_partial is set on a page (and drop
  it when clearing that flag)
- don't drop a page reference never acquired when freeing the page
  type
  of a page where the allocation of the type got preempted (and never
  completed)
- don't acquire a page reference when allocating the page type of a
  page where freeing the type got preempted (and never completed, and
  hence didn't drop the respective reference)

Signed-off-by: Jan Beulich <jbeulich@novell.com>
xen/arch/x86/domain.c
xen/arch/x86/mm.c
xen/include/asm-x86/mm.h